Data storage systems are arrangements of hardware and software that include one or more storage processors coupled to arrays of non-volatile storage devices, such as magnetic disk drives, electronic flash drives, and/or optical drives, for example. The storage processors service storage requests, arriving from host machines (“hosts”), which specify files or other data elements to be written, read, created, or deleted, for example. Software running on the storage processors manages incoming storage requests and performs various data processing tasks to organize and secure the data elements stored on the non-volatile storage devices.
Some data storage systems employ data logs for capturing incoming data. For example, an application running on a host directs an IO (Input/Output) request to a data storage system. The IO request specifies data to be written to a LUN (Logical UNit), file system, VVol (Virtual Volume), or other data object in the data storage system. Rather than immediately placing the data specified in the IO request into a structure of the data object itself, which may involve mapping and other time-consuming tasks, the data storage system instead places the newly arriving data in a data log. The data log holds the newly arriving data temporarily until mapping and other activities can be performed. Once the data is stored in the data log, the data storage system may acknowledge completion of the IO request back to the host application, such that the host application may resume its processing. Later, out of band with incoming IO requests, the data storage system may flush host data from the data log to more permanent structures, e.g., to mapped locations of the LUN, file system, or VVol.